#include <stdio.h>

typedef unsigned int TypeUint;

TypeUint factorial(TypeUint num);


int main(int argc, char *argv[])
{
    TypeUint num, fact=1;

    if (argc>1)
    {
        num = atoi(argv[1]);
    }
    else
    {
        printf("Error: Debe ingresar como argumento el numero a calcular el factorial!\n");
        return -1;
    }

   fact = factorial(num);

        printf("Factorial Comun de %d es %u \n",num, fact);
// Auxiliary Functions:
}

TypeUint factorial(TypeUint num)
{
  TypeUint aux=(num>1? num: 1);
  if (aux>1)
  {
    aux *= factorial(aux-1);
  }
  return aux;
}
